package iu;

import java.io.*;
import java.util.Date;


public class LComandos {

	public int LeerEntero (String sCadena){
		String sCad = new String ();
		int nNumero=0; 
		nNumero = Integer.parseInt(this.LeerCadena(sCadena));
		return nNumero;
	};
	
	public String LeerCadena (String sCadena){
		String sCad = new String();
		InputStreamReader isr = new InputStreamReader(System.in);
	    BufferedReader br = new BufferedReader(isr);
		try {
			this.EscribirCadena(sCadena);
			sCad = br.readLine();
		}
		catch (IOException ioe){
			sCad = "";
		}
		finally {
			
		}
		return sCad;
	}
	
	public void EscribirCadena (String sCadena){
		System.out.println (sCadena);
	}
	

	@SuppressWarnings("deprecation")
	public Date LeerFecha (String sCadena){
		this.EscribirCadena(sCadena);
		int nDia = LeerEntero ("Dime un día:");
		int nMes = LeerEntero ("Dime un mes:");
		int nAnyo = LeerEntero ("Dime un año:");
		String Fecha = validarFecha (nDia, nMes, nAnyo);
		//Date UnaFecha = new Date(nAnyo, nMes, nDia);
		Date UnaFecha = new Date (Fecha);
		//UnaFecha.
		//UnaFecha.setYear(nAnyo);
		//UnaFecha.setMonth(nMes);
		//UnaFecha.setDate(nDia);

		return UnaFecha;
		
	}
	
	public String validarFecha(int dia, int mes, int año)
	{

	switch(mes)
	{

	case 1:
	case 3:
	case 5:
	case 7:
	case 8:
	case 10:
	case 12:
	if (dia<=0 | dia>=32)
	return "Formato de fecha invalido";
	break;

	case 4:
	case 6:
	case 9:
	case 11:
	if (dia<=0 | dia>=31)
	return "Formato de fecha invalido";
	break;

	case 2: //Febrero. Acuerdate del año bisiesto
	if((año%4==0) && (año %100!=0) || (año %400==0))
	{ //Es bisiesto
	if (dia<=0 | dia>=30)
	return "Formato de fecha invalido";
	}else
	{
	if (dia<=0 | dia>=29)
	return "Formato de fecha invalido";
	}
	break;
	default:
	return "Formato de Fecha Invalido";

	} //Fin Switch

	return año+"/"+mes+"/"+dia;
	}
	
}
